Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

252
Views
Cómo crear un nuevo constructor con cada elemento de mi archivo Json. [Javascript]

Básicamente este es mi archivo Json:

 [ { "id": 9, "nombre": "ProductoDeJson4", "precio": 15000, "stock": 0, "img": "" }, { "id": 10, "nombre": "ProductoDeJson5", "precio": 15000, "stock": 0, "img": "" } ]

Esta es mi clase:

 class Producto { constructor(id, nombre, precio, stock) { this.id = id; this.nombre = nombre; this.precio = precio; this.stock = stock; } sumaIVA() { this.precio *= 1.21; } aumentarPrecio() { if (aumentoPrecios < 1) { this.precio = this.precio * aumentoPrecios + this.precio; } else { this.precio *= aumentoPrecios; } } }

Y quiero hacer esto dinámicamente con los datos de mi Json. Porque quiero aplicar la función "aumentarPrecio()" a cada uno.

 const producto1 = new Producto(1, "Grasa", 400, 1); const producto2 = new Producto(2, "Desengrasante", 1000, 1); const productos = [ producto1, producto2, ];

En este momento estoy tratando de hacerlo así, pero no funciona. El nuevo Producto se está creando pero las funciones de la clase no funcionan. Creo que es porque no estoy creando una nueva constante para cada elemento del Json. Pero no sé cómo hacerlo dinámicamente.

 async function obtenerProductos() { const response = await fetch("productos.json"); return await response.json(); } let arrayProductos = obtenerProductos(); //Agrego productos del JSON al array de productos (falta agregarle los métodos o transformar cada uno en un new Producto) arrayProductos.then((el) => { console.log(el); el.forEach((el) => { console.log(el["nombre"]); const productosJson = new Producto( el["id"], el["nombre"], el["precio"], el["stock"] ); productos.push(productosJson); console.log("elemento pusheado"); }); }); //Método Aumentar precio productos, luego de tener los productos listos en el array productos.forEach((listaProductos) => { setTimeout(() => { listaProductos.aumentarPrecio(); console.log("precios aumentados"); }, 1000); });

Por favor ayúdame, jaja. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Estás tratando de crear objetos dinámicamente dentro de un bucle, por lo que puedo decir.

Este enlace puede ser lo que estás buscando.

Tldr:

  1. Cree una lista vacía que guardará los objetos recién creados
  2. Recorra su json como lo hace ahora pero con un contador i y extraiga los datos para el objeto actual
  3. Agregue cada objeto a su lista, por ejemplo objects[i] = new Producto(1, "Grasa", 400, 1); (Cuidado aquí, ya que no le está dando ningún nombre a sus objetos, serán llamados por object[i].function )
  4. llame a su función después o durante la adición de los objetos a través de object[i].aumentarPrecio()

En otra nota: probablemente no debería declarar los objetos como const en su código y podría chocar con su declaración fuera de clase de aumentoPrecios .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!